package com.zhangxu.microservice.auth.biz.dto;

import com.zhangxu.microservice.auth.common.enums.ResourceStatusEnum;
import com.zhangxu.microservice.auth.common.enums.ResourceTypeEnum;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 资源DTO
 */
@Data
public class ResourceDTO {

    /**
     * 主键 ID
     */
    private Long id;

    /**
     * 所属系统ID
     */
    private Long systemId;

    /**
     * 父资源ID，顶级为 0
     */
    private Long parentId;

    /**
     * 资源名称
     */
    private String name;

    /**
     * 资源编码，唯一标识
     */
    private String code;

    /**
     * 资源类型：MENU/BUTTON/API
     */
    private ResourceTypeEnum type;

    /**
     * 资源路径，如菜单路由/接口路径
     */
    private String path;

    /**
     * 请求方法，仅对API有效，如GET/POST/PUT/DELETE
     */
    private String method;

    /**
     * 是否可见：0-隐藏，1-可见（对菜单类有效）
     */
    private Boolean visible;

    /**
     * 排序值，升序
     */
    private Integer sort;

    /**
     * 备注说明
     */
    private String remark;

    /**
     * 状态：ENABLE-启用、DISABLE-禁用、INIT-新建
     */
    private ResourceStatusEnum status;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 创建人ID
     */
    private Long createBy;

    /**
     * 更新人ID
     */
    private Long updateBy;
}